package com.company.string;

/**
 * @author jrue
 * @description https://leetcode-cn.com/problems/day-of-the-year/
 * @date 2019/11/16 11:06
 * 给你一个按 YYYY-MM-DD 格式表示日期的字符串 date，请你计算并返回该日期是当年的第几天。
 *
 * 通常情况下，我们认为 1 月 1 日是每年的第 1 天，1 月 2 日是每年的第 2 天，依此类推。每个月的天数与现行公元纪年法（格里高利历）一致。
 */

public class DayOfYear {

    public static void main(String[] args) {
        System.out.println(dayOfYear("2003-03-01"));
    }

    public static int dayOfYear(String date) {
        if (date.length() == 0) return 0;
        String[] split = date.split("-");
        int year = Integer.parseInt(split[0]);
        int mouth = Integer.parseInt(split[1]);
        int day = Integer.parseInt(split[2]);
        int[][] days = new int[2][];
        days[0] = new int[]{0,31,28,31,30,31,30,31,31,30,31,30,31};
        days[1] = new int[]{0,31,29,31,30,31,30,31,31,30,31,30,31};

        int flag = 0;
        if (year % 4 == 0 && year % 100 != 0){
            flag = 1;
        }
        int res = 0;
        for (int i = 0 ;i < mouth; i++) {
            res+= days[flag][i];
        }

        return res += day;
    }

}
